package com.ruoyi.saas.mapper;

import com.ruoyi.saas.domain.CTenant;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

import java.util.List;


/**
 * 租户信息Mapper接口
 * 
 * @author ruoyi
 * @date 2021-11-02
 */
public interface CTenantMapper
{
    /**
     * 查询租户信息
     * 
     * @param id 租户信息ID
     * @return 租户信息
     */
    public CTenant selectCTenantById(Long id);

    /**
     * 查询租户信息列表
     * 
     * @param cTenant 租户信息
     * @return 租户信息集合
     */
    public List<CTenant> selectCTenantList(CTenant cTenant);

    /**
     * 新增租户信息
     * 
     * @param cTenant 租户信息
     * @return 结果
     */
    public int insertCTenant(CTenant cTenant);

    /**
     * 修改租户信息
     * 
     * @param cTenant 租户信息
     * @return 结果
     */
    public int updateCTenant(CTenant cTenant);

    /**
     * 删除租户信息
     * 
     * @param id 租户信息ID
     * @return 结果
     */
    public int deleteCTenantById(Long id);

    /**
     * 批量删除租户信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteCTenantByIds(Long[] ids);


    /**
     * 批量更新租户状态
     * @param ids
     * @param value
     * @return
     */
    @Update("<script>UPDATE c_tenant " +
            "SET status = #{status} " +
            "WHERE " +
            "id in " +
            "<foreach collection = 'ids' item ='id' index ='index' open='(' close=')' separator=','>#{id}</foreach></script>")
    int updateTenantStatus(@Param("ids") List<Long> ids, @Param("status") String value);



    List<String> selectCTenantCodeListByIds(Long[] ids);


    CTenant selectCTenantByTenantCode(String tenantCode);
}
